﻿using System;
using Com.Binaria.Core.Util;

namespace Com.Binaria.SISCOB.DTO
{

    /// <summary>
    ///	Clase representativa de la tabla DocumentoTransaccion
    /// </summary>
    [Serializable]
    public class DocumentoTransaccionDTO : ICloneable
    {
        #region propiedades publicas
		private System.Int32? _id;
		private System.Int32? _idEgreso;
		private EgresoDTO _egreso;
		private System.Int32? _idIngreso;
		private IngresoDTO _ingreso;
		private System.Int32? _idSucursal;
		private SucursalDTO _sucursal;
		private System.Int32? _idCuentaCorriente;
		private CuentaCorrienteDTO _cuentaCorriente;
		private System.Int64? _monto;
		private System.DateTime? _fchDocumento;
		private System.DateTime? _fchUpdate;
		private System.String _glosa;
		private System.String _nmrDocumento;
		private System.Boolean? _estaActivo;
        private System.String _estado;
        private System.String _userName;
        #endregion

        #region metodos set y get propiedades publicas

        public System.Int32? Id
        {
           get { return _id; }
           set { _id = value; }
        }

        public System.Int32? IdEgreso
        {
           get { return _idEgreso; }
           set { _idEgreso = value; }
        }
				
        public EgresoDTO Egreso
        {
           get { return _egreso; }
           set { _egreso = value; }
        }

        public System.Int32? IdIngreso
        {
           get { return _idIngreso; }
           set { _idIngreso = value; }
        }
				
        public IngresoDTO Ingreso
        {
           get { return _ingreso; }
           set { _ingreso = value; }
        }

        public System.Int32? IdSucursal
        {
           get { return _idSucursal; }
           set { _idSucursal = value; }
        }
				
        public SucursalDTO Sucursal
        {
           get { return _sucursal; }
           set { _sucursal = value; }
        }

        public System.Int32? IdCuentaCorriente
        {
           get { return _idCuentaCorriente; }
           set { _idCuentaCorriente = value; }
        }
				
        public CuentaCorrienteDTO CuentaCorriente
        {
           get { return _cuentaCorriente; }
           set { _cuentaCorriente = value; }
        }

        public System.Int64? Monto
        {
           get { return _monto; }
           set { _monto = value; }
        }

        public System.DateTime? FchDocumento
        {
           get { return _fchDocumento; }
           set { _fchDocumento = value; }
        }

        public System.DateTime? FchUpdate
        {
           get { return _fchUpdate; }
           set { _fchUpdate = value; }
        }

        public System.String Glosa
        {
           get { return _glosa; }
           set { _glosa = value; }
        }

        public System.String NmrDocumento
        {
           get { return _nmrDocumento; }
           set { _nmrDocumento = value; }
        }

        public System.Boolean? EstaActivo
        {
           get { return _estaActivo; }
           set { _estaActivo = value; }
        }
        #endregion

        public System.String Estado
        {
            get { return _estado; }
            set { _estado = value; }
        }

        public System.String UserName
        {
            get { return _userName; }
            set { _userName = value; }
        }
        #region constructores
        /// <summary>
        /// constructor por defecto del objeto
        /// </summary>
        public DocumentoTransaccionDTO() { }
        #endregion

        #region ICloneable Members
        object ICloneable.Clone()
        {
            return this.Clone();
        }
        
        /// <summary>
        /// Metodo que permite crear una copia de la actual instancia en memoria
        /// </summary>
        /// <returns>una copia del objeto existente en memoria</returns>
        public DocumentoTransaccionDTO Clone()
        {	
	 	    DocumentoTransaccionDTO oDto = (DocumentoTransaccionDTO)this.MemberwiseClone();		
            oDto.Egreso = this.Egreso == null ? null: (EgresoDTO)this.Egreso.Clone();
            oDto.Ingreso = this.Ingreso == null ? null: (IngresoDTO)this.Ingreso.Clone();
            oDto.Sucursal = this.Sucursal == null ? null: (SucursalDTO)this.Sucursal.Clone();
            oDto.CuentaCorriente = this.CuentaCorriente == null ? null: (CuentaCorrienteDTO)this.CuentaCorriente.Clone();
	 	    return oDto;
	    }
        #endregion Clone Method	
    }//End class DocumentoTransaccionDTO
}//End namespace
